package com.qi.demo01.JMM;

/**
 * @author zjq
 * @date 2020/7/6 22:58
 * <p>
 * 禁止指令重排
 */
public class VolatileDemo3 {
    int a = 0;
    Boolean flag = false;

    public void method01() {
        a = 1;  //语句1
        flag = true;  //语句2
    }

    //**多线程环境**中线程交替执行，由于编译期优化重排的存在，两个线程中使用的变量能否保住一致性是无法确定的，结果无法预测
    public void method02() {
        if (flag == true) {
            a = a + 5; //语句3
            System.out.println("res--->a==" + a);
        }
    }
}
